<#assign uncapTableName = "${tableName}"?uncap_first>
package ${parentName}.${moduleName}.api.feign;

import ${parentName}.${moduleName}.api.dto.request.*;
import com.smedi.ismedi.authority.starter.common.ResponseData;
import ${parentName}.${moduleName}.api.dto.response.${tableName}Response;
import com.smedi.ismedi.web.starter.common.PaginationData;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;

/**
 * ${tableComment}
 *
 * @author ${author}
 * @since ${date}
 */

@FeignClient(name = "ismedi-${moduleName}")
@Api(tags = {"${tableComment}"})
@RequestMapping(value = "/api/v1/${uncapTableName}")
@RestController
public interface Remote${tableName}FeignApi {
    /**
     * 新增
     */
    @ApiOperation(value = "${tableComment}新增", nickname = "${tableComment}新增")
    @PostMapping(value = "/add${tableName} ")
    ResponseData<${tableName}Response> add${tableName}(@Validated @RequestBody Add${tableName}Request add${tableName}Requset);

    /**
     * 删除
     */
    @ApiOperation(value = "${tableComment}删除", nickname = "${tableComment}删除")
    @PostMapping(value = "/del${tableName}")
    ResponseData<Boolean> del${tableName}(@Validated @RequestBody Del${tableName}Request del${tableName}Request);

    /**
     * 修改
     */
    @ApiOperation(value = "${tableComment}修改", nickname = "${tableComment}修改")
    @PostMapping(value = "/update${tableName}")
    ResponseData<${tableName}Response> update${tableName}(@Validated @RequestBody Update${tableName}Request update${tableName}Request);


    /**
     * 分页查询
     */
    @ApiOperation(value = "${tableComment}分页查询", nickname = "${tableComment}分页查询")
    @PostMapping(value = "/query${tableName}ByPage")
    ResponseData<PaginationData<${tableName}Response>> query${tableName}ByPage(@Validated @RequestBody Query${tableName}PageRequest query${tableName}PageRequest);

    /**
     * 单个查询
     */
    @ApiOperation(value = "${tableComment}单个查询", nickname = "${tableComment}单个查询")
    @PostMapping(value = "/query${tableName}ByOne")
    ResponseData<${tableName}Response> query${tableName}ByOne(@Validated @RequestBody Query${tableName}ByOneRequest query${tableName}ByOneRequest);

    /**
     * 列表查询
     */
    @ApiOperation(value = "${tableComment}列表查询", nickname = "${tableComment}列表查询")
    @PostMapping(value = "/query${tableName}List")
    ResponseData<List<${tableName}Response>> query${tableName}List(@Validated @RequestBody Query${tableName}ListRequest query${tableName}ListRequest);

}